package com.briup.day12;

import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 我们在控制台中输入的字符串，是如何将其转换为int类型的值
        int i = sc.nextInt();
        System.out.println(i);

        // 我们可以使用包装类型Integer类中的parseInt方法
        // 将一个字符串类型的数值转换为int类型的值
        int i1 = Integer.parseInt("321");
        System.out.println(i1 + i);

        // 要将String类型的值转换为其他基本数据类型的值，
        // 主要使用其对应包装类型中的parseXxx方法即可
        System.out.println(Double.parseDouble("3.1415"));

        // 如果将一个字符串aaa传入parseInt方法中，会出现NumberFormatException数字格式化异常
//        int i2 = Integer.parseInt("aaa");
        // 只需要修改进制即可，如在解析时指定使用16进制进行解析
        int i2 = Integer.parseInt("aaa", 16);
        System.out.println(i2);

        // 还可以通过各个包装类中的valueOf()方法进行解析，通常还是推荐使用parseInt()方法
        System.out.println(Integer.valueOf("123", 16));

        // 如何将包装类型和基本数据类型的数据转换为String类型的值
        // 1、直接将该基本数据类型或包装类型的值和空字符串""拼接即可
        String s2 = i2 + "";
        System.out.println(s2.getClass().getName());
        // 2、直接使用String.valueOf()方法，
        // 可以将你传入的包装类对象按照你重写后的toString方法逻辑将包装类对象对转换为字符串
        // 这里传入的100可以自动转换为包装类型Integer的对象
        System.out.println(String.valueOf(100));
    }
}
